import json
import matplotlib.pyplot as plt
import matplotlib
from matplotlib.patches import Ellipse
import numpy as np
from 翻译包 import *
from 文件工具箱 import *
from 句段处理 import *

数据文件 = "./分析结果.json"

def 画线形图(测量指标, 纵坐标标签, 标签横坐标 = 1.0):
	global 数据文件
	输出("测量指标:%s" % 测量指标)
	分析结果 = 恢复数据结构(数据文件) 
	数据 = 字典()
	for 算法 in ["hf", "hp", "pr", "el", "fr"]:
		数据[算法] = []
		for 内存容量 in np.arange(1.0, 10.1, 1.0):
			数据[算法].append(分析结果[算法][字符串(内存容量)][测量指标])
	输出("sf:%.3f" % 分析结果["sf"][测量指标])	
	临变 = zip(np.arange(1.0, 10.1, 1.0), 数据["hf"], \
			数据["hp"], 数据["pr"], 数据["el"], 数据["fr"])
	for 带宽, hf, hp, pr, el, fr in 临变:
		输出("带宽:%.1f, hf:%.3f, hp:%.3f, pr:%.3f, el:%.3f, fr:%.3f" % \
			(带宽, hf, hp, pr, el, fr))

	plt.figure()
#	if [] != 纵坐标范围:
#		plt.ylim(纵坐标范围)
	plt.xticks([2.0, 4.0, 6.0, 8.0, 10.0])
#	plt.yticks(np.arange(0.0, 1.01, 0.2))
	横坐标 = np.arange(1.0, 10.1, 1.0)
	plt.plot(横坐标, [分析结果["sf"][测量指标]]*10, color = 'red')
	plt.text(标签横坐标, 分析结果["sf"][测量指标] + 0.05, "SF", fontsize=20, bbox={'facecolor': 'red', 'alpha': 0.5, 'pad': 3})
	plt.plot(横坐标, 数据["hf"], label = "HF", marker = "o", color = 'green')
	plt.plot(横坐标, 数据["hp"], label = "HP", marker = "P", color = 'black')
	plt.plot(横坐标, 数据["fr"], label = "FR", marker = "s", color = 'orange')
	plt.plot(横坐标, 数据["pr"], label = "PR", marker = "d", color = 'purple')
	plt.plot(横坐标, 数据["el"], label = "EL", marker = "p", color = 'brown')
	plt.legend(bbox_to_anchor=(0.0, 1.0, 1.0, 0.1), loc = 3, ncol = 2, mode = "expand", borderaxespad = 0.0)
#	plt.legend(ncol = 2)
	plt.xlabel(r"Memory Consumption/MB")
	plt.ylabel(纵坐标标签)
	plt.savefig("%s.pdf" % 测量指标, bbox_inches = "tight")
	plt.close()
